<?php
/**
 * Created by PhpStorm.
 * User: 魏爷
 * Date: 2016/4/19
 * Time: 21:45
 */

namespace Home\Model;

use Think\Model;

class UserLoginModel extends Model
{
    // 数据表名（不包含表前缀）
    protected $tableName        =   'user';

    /**
     * 查询所有用户信息
     * @return array（）
    **/
    public function getAllUserInfo()
    {
        return $this->order('u_id DESC')->select();
    }
    /**
     * 解除绑定银行卡密码
    **/
    public function setBankPwdNull($u_id)
    {
        $this->where("u_id=$u_id")->setField('bank_pwd', '');
    }
    /**
     * 交易密码判断
     * @param Integer $u_id 用户ID
     * @param String $bank_pwd 原始密码
     * @return boolean
    **/
    public function getBankPwd($u_id, $bank_pwd)
    {
        $pwd=$this->where("u_id=$u_id")->getField('bank_pwd');
        if (myMd5($bank_pwd)==$pwd) {
            return true;
        } else {
            return false;
        }
    }
    /**
     * 交易密码设置
     * @param Integer $u_id 用户ID
     * @param String $bank_pwd 交易密码
     * @return boolean
    **/
    public function buyBankPwdSave($u_id, $bank_pwd)
    {
        $data['bank_pwd']=myMd5($bank_pwd);
        $res=$this->where("u_id=$u_id")->save($data);
        if ($res==false) {
            return false;
        } else {
            return true;
        }
    }
    /**
     * 安全问题清空
     * $param Integer $u_id 用户ID
     * $return boolean
    **/
    public function setContentById($u_id)
    {
        $this->where("u_id=$u_id")->setField('content_number', 1);
    }
    /**
     * 安全问题数字增加
     * @param Integer $u_id 用户ID
     * @return boolean
    **/
    public function setContentNumber($u_id)
    {
        $this->where("u_id=$u_id")->setInc('content_number');
    }
    /**
     * 安全问题数量查询
     * @param Integer $u_id 用户ID
     * @return Intergr
    **/
    public function getContentNumber($u_id)
    {
        return $this->where("u_id=$u_id")->getField('content_number');
    }
    /**
     * 根据用户ID修改银行卡信息
     * @return boolean
     **/
    public function removeBank($u_id)
    {
        $data['bank']='';
        $data['bank_number']='';
        $res=$this->where("u_id=$u_id")->save($data);
        if ($res>0) {
            return true;
        } else {
            return false;
        }
    }
    /**
     * 根据用户ID修改用户密码
     * @return boolean
    **/
    public function alertInfo($u_id, $u_pwd)
    {
        $data['u_pwd']=myMd5($u_pwd);
        $res=$this->where("u_id=$u_id")->save($data);
        if ($res>0) {
            return true;
        } else {
            return false;
        }
    }
    /**
     * 根据用户ID获取用户信息
     * @return array()
    **/
    public function getUserInfoById($u_id)
    {
        return $this->where("u_id=$u_id")->find();
    }
    /**
     * 根据u_email查询  返回用户信息
     * @param String $u_email 用户邮箱
     * @return array()
     **/
    public function getUserInfo($u_email)
    {
        return $this->where("u_email LIKE '$u_email'")->find();
    }
    /**
     * 根据u_id查询是否被禁用
     * @param String $u_emial 用户邮箱
     * @return boolean
    **/
    public function getDel($u_email)
    {
        $info=$this->getUserInfo($u_email);
        $u_id=$info['u_id'];
        $getDel=$this->where("u_id = $u_id")->getField('u_del');
        if ($getDel==1) {
            return true;
        } else {
            return false;
        }
    }
    /**
     * 用户验证
     * @param String $u_pwd 用户密码
     * @param String $u_email 用户邮箱
     * @return boolean
     */
    public function userLoginSkip($u_pwd, $u_email)
    {
        $u_id=$this->getUserInfo($u_email);
        $where['u_id']=$u_id['u_id'];
        $where['u_pwd']=myMd5($u_pwd);
        $res=$this->where($where)->find();
        if ($res===false) {
            return false;
        } else {
            if (empty($res['u_id'])) {
                return false;
            }
            $this->updateLastLoginTime($res['u_id']);
            session('u_id', $res['u_id']);
            session('userInfo', $res);
            return true;
        }
    }
    /**
     * 修改登录时间
     * @param Integer $uid 用户id
     * @return Boolean
     */
    private function updateLastLoginTime($u_id)
    {
        $res = $this->where("u_id = {$u_id}")->setField('u_lastlogindate', time());
        return empty($res) ? false : true;
    }
}
